<?php

/**
 * Lord_Controller_Action
 *
 * Прослойка контроллера между базовым классом контроллера
 * и самим контроллером приложения
 *
 * @package Basic
 * @author Игорь Будасов aka Lord <igor.budasov@gmail.com>
 */

class Lord_Controller_Action extends Zend_Controller_Action
{
	// переменные введена для облегчения копиПасты
	protected $_moduleName;
	protected $_controllerName;

	protected $model;

	public function init()
	{
		$this->view = Zend_Registry::get('smarty');

		$this->_moduleName     = $this->getRequest()->getModuleName();
		$this->_controllerName = $this->getRequest()->getControllerName();
		$this->_scriptPath = $GLOBALS['root'].'application'.
							 DIR_SEP.'modules'.
							 DIR_SEP.$this->_moduleName.
							 DIR_SEP.'views'.
							 DIR_SEP.$this->_controllerName.
							 DIR_SEP;

		$module =  ucfirst($this->_moduleName);
		if($module !== 'Default')
		{
			if(class_exists($module))
			{
				$this->model = new $module();
			}
		}

	}

/*------------------------------------------------------------------------------*/

	private function _getMenu($model, $id = 0, $level = 0)
	{
		$treeArr = array();

		// получаем данные для дерева категорий и преобразовываем в массив
		$tree = $model->getChildren($id);


		foreach($tree as $k => $v)
		{
			$treeArr[$k]['label']      = $v['name'];
			$treeArr[$k]['module']     = 'store';
			$treeArr[$k]['controller'] = 'goods';
			$treeArr[$k]['action']     = 'index';
			$treeArr[$k]['id']         = $v['id'];
			$treeArr[$k]['pid']        = $v['pid'];
			$treeArr[$k]['params']     = array('cid' => $v['id']);
			// рекурсивно вызываем функцию
			$node =  $this->_getMenu($model, $v['id'], $level + 1);
			if (!empty($node))
			{
				$treeArr[$k]['pages'] = $node;
			}
		}
		// возвращаем результат
		return $treeArr;
	}

/*------------------------------------------------------------------------------*/

}